ci: Add a dist profile with optimised binary size#6101
Merged
jmartinesp merged 3 commits intomainfrom Feb 4, 2026
Merged
Conversation
This is intended for reducing the binary size of the SDK distributed in Android/iOS bindings. Its optimization level is 'binary size', it contains LTO optimizations and by default removes part of the debug info - the rest can be removed later if needed.
This makes it possible to link a Sentry trace to the debug symbols so it can be symbolicated
79ab3d0 to
fe67c20
Compare
debuginfo for reldbg and release profilesdist profile with optimised binary size
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6101 +/- ##
=======================================
Coverage 89.84% 89.84%
=======================================
Files 363 363
Lines 100638 100638
Branches 100638 100638
=======================================
+ Hits 90420 90422 +2
+ Misses 6690 6688 -2
Partials 3528 3528 ☔ View full report in Codecov by Sentry. |
Hywan
approved these changes
Feb 4, 2026
Member
Hywan
left a comment
There was a problem hiding this comment.
Thanks! A tiny feedback but I'm approving ahead of time to save one review trip.
Cargo.toml
Outdated
| debug = 0 | ||
|
|
||
| # Profile for debug builds with full optimization and minimal debug symbols. | ||
| # This should be just enough to have proper backtraces, having way smaller binaries. |
Member
There was a problem hiding this comment.
Can you explain the difference between reldev and reldbg from a developer point of view please?
It allows having way smaller binaries while still being able to have proper backtraces: `reldbg` is great for iOS because it allows inline debugging using LLDB in Xcode, but it produces enormous binaries, while for Android we can't use that properly and we'd only be interested in having symbolicated backtraces, which this profile achieves with binaries an order of magnitude smaller.
a127ed6 to
916d431
Compare
Member
|
Great comment, thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes:
distprofile that can be used by the bindings to generate library versions with optimised binary size. This was specially a pain point for Android: with this config and some debug symbol stripping, the library size is now 50-70MB smaller per architecture, resulting in very significant file size reduction for universal APKs, which have 4 archs.reldevprofile for FFI bindings consumers that allows having way smaller binaries while still being able to have proper backtraces:reldbgis great for iOS because it allows inline debugging using LLDB in Xcode, but it produces enormous binaries (last I checked was 1.25GB), while for Android we can't use that properly and we'd only be interested in having symbolicated backtraces, which this profile achieves with binaries an order of magnitude smaller.I'm aware
reldevis quite easy to mistake wirhreldbg, so I'm open to finding a better name for it 😅 .Signed-off-by: